/*******************************************************************************
 * CopyRight (c) 2020 
 *
 * \file    publicdef.h
 * \brief   公共头文件
 * \author  张 靖
 * \version 1.0.0
 * \date    2020-06-22
 *
 * -----------------------------------------------------------------------------
 *
 * -----------------------------------------------------------------------------
 * 文件修改历史：
 * <时间>       | <版本>    | <作者>    | <描述>
 * 2020-06-22   | v1.0.0    | 张 靖     | 创建文件
 * -----------------------------------------------------------------------------
 ******************************************************************************/

#ifndef _PUBLICDEF__H
#define _PUBLICDEF__H

#include "errno.h"

/*!
 * \brief 定义print_ctrl.h中的默认调试输出级别
 */
//#define PRINT_LEVEL     INFO_    /**< 默认调试级别 */
#define PRINT_LEVEL     DTAIL

/** get little endian tag */
#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
/** change to little endian of 32bits */
#define MKLE32(a) ((a)>>24 | ((a)&0x00FF0000)>>8 | ((a)&0x0000FF00)<<8 |(unsigned)(a)<<24)
/** make to little endian of 64bits */
#define MKLE64(a) (((a)&0xFF00000000000000ul)>>56 | (((a)&0x00FF000000000000ul)>>40) \
            | (((a)&0x0000FF0000000000ul)>>24) | (((a)&0x000000FF00000000ul)>>8) \
            | (((a)&0x00000000FF000000)<<8) | (((a)&0x0000000000FF0000)<<24) \
            | (((a)&0x000000000000FF00)<<40) | ((a)<<56))
#define MIN(a,b) ((a) > (b) ? (b) : (a))

#endif /* _PUBLICDEF__H */
